package com.higgins.lawapp.server.dataItemModel;

import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;
import com.higgins.lawapp.client.settings.dataItemModel.DataItemDTO;

@PersistenceCapable
public class DataItem {
	@SuppressWarnings("unused")
	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	private Key key;

	@Persistent
	Date collectionTimestamp;
	
	@Persistent
	private String dataItemOne;

	@Persistent
	private String dataItemTwo;

	@Persistent
	private String dataItemThree;

	@Persistent
	private String dataItemFour;

	@Persistent
	private String dataItemFive;

	@Persistent
	private Boolean urlOne;

	@Persistent
	private Boolean urlTwo;

	@Persistent
	private Boolean urlThree;

	@Persistent
	private Boolean urlFour;

	@Persistent
	private Boolean urlFive;

	@Persistent
	private Boolean concatOne;

	@Persistent
	private Boolean concatTwo;

	@Persistent
	private Boolean concatThree;

	@Persistent
	private Boolean concatFour;

	@Persistent
	private Boolean concatFive;
	
	@Persistent
	private String type;
	
	public DataItem()	{
	}
	public Date getCollectionTimestamp()	{
		return collectionTimestamp;
	}
	public void setCollectionTimestamp(Date collectionTimestamp)	{
		this.collectionTimestamp = collectionTimestamp;
	}
	public void setType(String type)	{
		this.type = type;
	}
	public String getType()	{
		return type;
	}
	
	public void setDataItemOne(String dataItemOne)	{
		this.dataItemOne = dataItemOne;
	}
	public String getDataItemOne()	{
		return dataItemOne;
	}

	public void setDataItemTwo(String dataItemTwo)	{
		this.dataItemTwo = dataItemTwo;
	}
	public String getDataItemTwo()	{
		return dataItemTwo;
	}

	public void setDataItemThree(String dataItemThree)	{
		this.dataItemThree = dataItemThree;
	}
	public String getDataItemThree()	{
		return dataItemThree;
	}

	public void setDataItemFour(String dataItemFour)	{
		this.dataItemFour = dataItemFour;
	}
	public String getDataItemFour()	{
		return dataItemFour;
	}

	public void setDataItemFive(String dataItemFive)	{
		this.dataItemFive = dataItemFive;
	}
	public String getDataItemFive()	{
		return dataItemFive;
	}
	
	public void setURLOne(Boolean urlOne)	{
		this.urlOne = urlOne;
	}
	public void setURLTwo(Boolean urlTwo)	{
		this.urlTwo = urlTwo;
	}
	public void setURLThree(Boolean urlThree)	{
		this.urlThree = urlThree;
	}
	public void setURLFour(Boolean urlFour)	{
		this.urlFour = urlFour;
	}
	public void setURLFive(Boolean urlFive)	{
		this.urlFive = urlFive;
	}
	public void setConcatOne(Boolean concatOne)	{
		this.concatOne = concatOne;
	}
	public void setConcatTwo(Boolean concatTwo)	{
		this.concatTwo = concatTwo;
	}
	public void setConcatThree(Boolean concatThree)	{
		this.concatThree = concatThree;
	}
	public void setConcatFour(Boolean concatFour)	{
		this.concatFour = concatFour;
	}
	public void setConcatFive(Boolean concatFive)	{
		this.concatFive = concatFive;
	}
	
	
	public Boolean getFirstConcat()	{
		if (urlOne)
			return concatOne;
		if (urlTwo)
			return concatTwo;
		if (urlThree)
			return concatThree;
		if (urlFour)
			return concatFour;
		if (urlFive)
			return concatFive;
		return false;
	}	
	public String getFirstUrl()	{
		if (urlOne)
			return dataItemOne;
		if (urlTwo)
			return dataItemTwo;
		if (urlThree)
			return dataItemThree;
		if (urlFour)
			return dataItemFour;
		if (urlFive)
			return dataItemFive;
		
		return "";
	}
	public String getFirstName()	{
		if (urlOne!=null)
			if (urlOne)
				return dataItemTwo;
		if (urlTwo!=null)
			if (urlTwo)
				return dataItemThree;
		if (urlThree!=null)
			if (urlThree)
				return dataItemFour;
		if (urlFour!=null)
			if (urlFour)
				return dataItemFive;
		return "";
	}
	
	
	public void setDataItemDTO(DataItemDTO dataItemDTO)	{
		type = dataItemDTO.getType();
		dataItemOne = dataItemDTO.getItemOne();
		dataItemTwo = dataItemDTO.getItemTwo();
		dataItemThree = dataItemDTO.getItemThree();
		dataItemFour = dataItemDTO.getItemFour();
		dataItemFive = dataItemDTO.getItemFive();
		urlOne = dataItemDTO.urlOne();
		urlTwo = dataItemDTO.urlTwo();
		urlThree = dataItemDTO.urlThree();
		urlFour = dataItemDTO.urlFour();
		urlFive = dataItemDTO.urlFive();
		concatOne = dataItemDTO.getConcatOne();
		concatTwo = dataItemDTO.getConcatTwo();
		concatThree = dataItemDTO.getConcatThree();
		concatFour = dataItemDTO.getConcatFour();
		concatFive = dataItemDTO.getConcatFive();
	}
	public DataItemDTO getDataItemDTO()	{
		DataItemDTO dataItemDTO = new DataItemDTO();
		dataItemDTO.setType(type);
		
		dataItemDTO.setItemOne(dataItemOne);
		dataItemDTO.setURLOne(urlOne);
		dataItemDTO.setConcatOne(concatOne);
		
		dataItemDTO.setItemTwo(dataItemTwo);
		dataItemDTO.setURLTwo(urlTwo);
		dataItemDTO.setConcatTwo(concatTwo);
		
		dataItemDTO.setItemThree(dataItemThree);
		dataItemDTO.setURLThree(urlThree);
		dataItemDTO.setConcatThree(concatThree);
		
		dataItemDTO.setItemFour(dataItemFour);
		dataItemDTO.setURLFour(urlFour);
		dataItemDTO.setConcatFour(concatFour);
		
		dataItemDTO.setItemFive(dataItemFive);
		dataItemDTO.setURLFive(urlFive);
		dataItemDTO.setConcatFive(concatFive);
		
		dataItemDTO.setItemOneOriginal(dataItemOne);
		dataItemDTO.setItemTwoOriginal(dataItemTwo);
		dataItemDTO.setItemThreeOriginal(dataItemThree);
		dataItemDTO.setItemFourOriginal(dataItemFour);
		dataItemDTO.setItemFiveOriginal(dataItemFive);		
		
		return dataItemDTO;
	}
}
